In recent years, region based in-loop and out-loop filters, such as interpolation filters, de-blocking/de-artifacting filters, pre/post processing filters, loop filters, and so forth, are emerging in video coding to improve coding efficiency and perceptual quality. Such filters usually partition a video frame into multiple regions based on content or rate-distortion (RD) cost. Then the filter structure and/or parameters can adapt to the local content characteristics of each region. This approach works well for non-stationary video signals. However, the region based filter usually has to spend overhead bits to code the partitions/segmentations, which would degrade the overall performance brought by the adaptation. This is especially true when multiple region based filters exist at the same time in an encoder/decoder, and the segmentation is independently done for each filter. The bits paid for coding the segmentations of all filters would be demanding and can take away the gain obtained from these filters.
Block Adaptive Loop Filter (BALF)
In a first prior art approach, a block based adaptive loop filter is proposed, wherein a reconstructed frame is restored towards the original frame by a Wiener filter. The coefficients of the Wiener filter are estimated at the encoder and sent to the decoder as side information. Although a Wiener filter can restore the reconstructed frame to the original frame globally, there are degraded pixels locally. Since the degraded areas reduce the predictive efficiency for future coding frames, not filtering these areas will improve the coding performance. In BALF, the frame is partitioned into equal-size blocks, and a switch flag is used for each block to control whether or not the block is filtered. In a second prior art approach, a quad-tree scheme is introduced to indicate whether or not a variable-size block of a frame is filtered. When using the variable-size block scheme, the overhead for coding the sizes and locations of blocks is demanding although the filter performance is better than the equal-size block scheme.
Spatio-Temporal Adaptive Loop Filter (STALF)
Inspired by sparsity-based de-noising techniques, a nonlinear in-loop filter has been proposed in a third prior art approach. The nonlinear in-loop filter averages multiple de-noised estimates which are obtained by thresholding the coefficients in an over-complete transform domain. For de-artifacting work, the choice of filtering parameters such as, for example, threshold, is important. The applied threshold plays a crucial part in controlling the de-noising capacity of the filter as well as in computing the averaging weights used in emphasizing the better de-noising estimates. In the third prior art approach, thresholds that are selected per pixel class based on quantization parameter (QP) and coding mode information are encoded and transmitted as side information to the decoder. The threshold does not adapt based on the video content.
A block based filter parameter adaptation scheme has also been proposed for use in improving the performance of the above sparsity based de-artifacting filter in video compression. More specifically, the adaptation of the filter parameters is based, not only on the quantization parameter and coding information, but also on the regions of the video sequences, which achieves the spatio-temporal adaptation. In each region, the filter parameters (e.g., threshold) are selected based on a rate-distortion cost, since the region information and the parameters need to be signaled.
Multiple Region Based Filters
When there is more than one region based filter existing in an encoder/decoder, the partition or segmentation of a frame is performed independently for each filter. The partition information also needs to be sent to the decoder for each filter, which is redundant because the segmentation usually has a strong correlation to the video content.